Create Project: springboot_log_logback_config_xml (add Spring Boot Starters from the table)
Edit File: application.properties (add Database connection parameters)
Create File: logback.xml (inside Directory resources)
Execute SQL: SQL Create Tables (manually create DB Tables in PostgreSQL DB)
Create Package: controllers (inside main package)
– Create Class: MyController.java (inside controllers package)
Create Package: log (inside log package)
– Create Class: MyDBAppender.java (inside controllers package)
application.properties
# POSTGRESQL DATABASE
spring.datasource.url = jdbc:postgresql://localhost:5432/Test
spring.datasource.username = postgres
spring.datasource.password = letmein
spring.datasource.driver-class-name = org.postgresql.Driver
# JPA / HIBERNATE
spring.jpa.hibernate.ddl-auto = create-drop
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- IMPORT PROPERTIES -->
<property resource="application.properties" />
<!-- MY DB APPENDER -->
<appender name="MyDBAppenderName"
class="com.ivoronline.springboot_log_logback_config_xml_db_custom.log.MyDBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<url> ${spring.datasource.url} </url>
<user> ${spring.datasource.username} </user>
<password> ${spring.datasource.password} </password>
<driverClass> ${spring.datasource.driver-class-name} </driverClass>
</connectionSource>
</appender>
<!-- LOGGER -->
<logger name="com.ivoronline.springboot_log_logback_config_xml_db_custom.controllers" level="INFO">
<appender-ref ref="MyDBAppenderName"/>
</logger>
</configuration>
Create Table SQL
-- CREATE SEQUENCE
create sequence transaction_event_id_seq;
-- CREATE TABLE
create table transaction (
event_id serial DEFAULT nextval('transaction_event_id_seq'::regclass),
message varchar,
level varchar,
date timestamp
);